Interactions between Module System Files

Various files of the Module System reference each other and are importing variables, definitions or tuples declared in the referenced files. You can see those at the top of each file with a line like

							
								from module_system_file_name import *
							
						

It is sometimes useful to know how these files are all interacting with each other which is why this overview here got created. It is showing you the interactions at the Native Module System, there might be little changes at other modules. Simply click on a file name and see at the headlines below which files are interacting with the selected file.

To remind you again, there are four types of .py files in the ModSys folder, each kind with an own purpose:

  • header_*files - Header files contain constants for the game. You can change them, but it's generally not recommended or needed. If you want to define yourself a new constant, you can do it in the appropriate module_* file. All available operations are documented in header_operations.py.
  • ID_*files - ID files contain the numerical indexes for everything in your mod. In MABL/MBScript/whatever, everything can be looked at as a list of stuff represented by an index, and ID files contain these indexes. ID files get re-created with every compile you do, you don't need to change them yourself. You can use ID files to check what indexes your stuff has - if you get game errors that report an index but not a name, for an example.
  • module_*files - Module files contain all the game stuff, and they are the ones that you will edit. They contain nearly everything - troops, items, scene props, scenes, etc. You are allowed to edit them. Backing up your ModSys folder from time to time is recommended.
  • process_*files - The process files are responsible for compiling your mod into the game's beloved numbers. Modification to these files seldom happens, and before you do anything, you have to be absolutely sure that you know what you're doing - but for a start, just don't touch them. The process files, unlike the other parts of the ModSys, are written in real Python.




Header files interacting with the selected file:

header_animations
header_common
header_dialogs
header_factions
header_game_menus
header_ground_types
header_item_modifiers
header_items
header_map_icons
header_meshes
header_mission_templates
header_mission_types
header_music
header_operations
header_particle_systems
header_parties
header_postfx
header_presentations
header_quests
header_scene_props
header_scenes
header_skills
header_skins
header_sounds
header_strings
header_tableau_materials
header_terrain_types
header_triggers
header_troops

ID files interacting with the selected file:

ID_animations
ID_factions
ID_info_pages
ID_items
ID_map_icons
ID_menus
ID_meshes
ID_mission_templates
ID_music
ID_particle_systems
ID_parties
ID_party_templates
ID_postfx_params
ID_presentations
ID_quests
ID_scene_props
ID_scenes
ID_scripts
ID_skills
ID_sounds
ID_strings
ID_tableau_materials
ID_troops

Module files interacting with the selected file:

module_animations
module_constants
module_dialogs
module_factions
module_game_menus
module_info
module_info_pages
module_items
module_map_icons
module_meshes
module_mission_templates
module_music
module_particle_systems
module_parties
module_party_templates
module_postfx
module_presentations
module_quests
module_scene_props
module_scenes
module_scripts
module_simple_triggers
module_skills
module_skins
module_sounds
module_strings
module_tableau_materials
module_triggers
module_troops
module_variables

Process files interacting with the selected file:

process_commons
process_operations